package com.glialsoft.managed;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import com.gilalsoft.negocio.fachada.FachadaManaged;
import com.glialsoft.negocio.dtos.RolesDTO;
import com.glialsoft.negocio.dtos.UsuarioDTO;

public class UsuarioManaged {
 
private UsuarioDTO usuario;
private String rolSelect;
private UsuarioDTO usuarioLogeado;


private boolean estaEditando=false;
	
public String getRolSelect() {
	return rolSelect;
}



public void setRolSelect(String rolSelect) {
	this.rolSelect = rolSelect;
}



@EJB
private FachadaManaged fachada;

public UsuarioManaged(){
	usuario = new UsuarioDTO();

usuarioLogeado = new UsuarioDTO();

}




public String validarLogin(){
	
	usuarioLogeado= fachada.validarUsuario(usuario.getNombre(), usuario.getPassword());
	usuario = new UsuarioDTO();
	if(usuarioLogeado.getNombre()!=null){
		if(usuarioLogeado.getRol().getIdRol()==1){
			return "usuario_admin.jsf";
		}
		else{
			return "paciente.jsf";
		}
		
		
	} 
	
	else {
		FacesMessage message = new FacesMessage();
        message.setSeverity(FacesMessage.SEVERITY_WARN);
        message.setSummary("Error en la validacion ");
        message.setDetail("Nombre de usuario o password incorrepto");
        FacesContext.getCurrentInstance().addMessage("linkId", message);
        
        return null;
		
	}
	
	
	
}


public List<UsuarioDTO> listaUsuarios(){
	return fachada.darListaUsuario();
}


public UsuarioDTO getUsuario() {
	return usuario;
}




public void setUsuario(UsuarioDTO usuario) {
	this.usuario = usuario;
}

	
public void agregarUsuario(){
	fachada.registrarUsuario(usuario);
  usuario = new UsuarioDTO();



}


public void cancelarActualizacionUsuario(){
	usuario = new UsuarioDTO();
	estaEditando=false;
}

public void actualizarUsuario(int id_usuario){
	usuario= fachada.buscarUsuario(id_usuario);
   estaEditando=true;
}

public void actualizarUsuarioSelect(){
	
	
	
	if(usuario.getNombre()!=null){
		
	
		fachada.actualizarUsuario(usuario);
		usuario=new UsuarioDTO();
		estaEditando=false;
		
		
		
	} 
	
	else {
		FacesMessage message = new FacesMessage();
        message.setSeverity(FacesMessage.SEVERITY_WARN);
        message.setSummary("Error en la validacion ");
        message.setDetail("id de usuario no existe");
        FacesContext.getCurrentInstance().addMessage("linkId", message);
        
       
		
	}
	
}


public void actualizar(){
	
	fachada.actualizarUsuario(usuarioLogeado);
	
	
	
}

public String logaout(){
	
	usuarioLogeado = new UsuarioDTO();
	usuario = new UsuarioDTO();
	
	return "index.jsf";
}

public List<RolesDTO> darListaRoles() {
	return fachada.darListaRoles();
}



public UsuarioDTO getUsuarioLogeado() {
	return usuarioLogeado;
}



public void setUsuarioLogeado(UsuarioDTO usuarioLogeado) {
	this.usuarioLogeado = usuarioLogeado;
}



public boolean isEstaEditando() {
	return estaEditando;
}



public void setEstaEditando(boolean estaEditando) {
	this.estaEditando = estaEditando;
}






	
}
